package cn.iocoder.yudao.module.infra.controller.admin.infocolumncollect.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelProperty;

import javax.validation.constraints.NotNull;

/**
 * 基础资料表元素汇总 Excel VO
 *
 * @author lry
 */
@Data
public class InfoColumnCollectExcelVO {

    @ExcelProperty("编号")
    private Long id;

    @ExcelProperty("表编号")
    private Long tableId;

    @ExcelProperty("字段名")
    private String columnName;

    @ExcelProperty("字段类型")
    private String dataType;

    @ExcelProperty("字段描述")
    private String columnComment;

    @ExcelProperty("是否允许为空")
    private Boolean nullable;

    @ExcelProperty("是否不可修改")
    private Boolean disable;

    @ExcelProperty("是否主键")
    private Boolean primaryKey;

    @ExcelProperty("是否自增")
    private Boolean autoIncrement;

    @ExcelProperty("排序")
    private Integer ordinalPosition;

    @ExcelProperty("Java 属性类型")
    private String javaType;

    @ExcelProperty("Java 属性名")
    private String javaField;

    @ExcelProperty("字典类型")
    private String dictType;

    @ExcelProperty("数据示例")
    private String example;

    @ExcelProperty("是否为 Create 创建操作的字段")
    private Boolean createOperation;

    @ExcelProperty("是否为 Update 更新操作的字段")
    private Boolean updateOperation;

    @ExcelProperty("是否为 List 查询操作的字段")
    private Boolean listOperation;

    @ExcelProperty("List 查询操作的条件类型")
    private String listOperationCondition;

    @ExcelProperty("是否为 List 查询操作的返回字段")
    private Boolean listOperationResult;

    @ExcelProperty("显示类型")
    private String htmlType;

    /**
     * 显示类型
     */
    private String eventType;
    /**
     * 显示类型
     */
    private String eventName;

    /**
     * 表格宽度
     */
    private Long tableWidth;

    /**
     * 方案编号
     */
    private String schemeCode;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
